package frames;

import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JSeparator;
import javax.swing.JTextField;

import javax.swing.WindowConstants;



import controlador.Sistema;

import negocio.Sede;
import negocio.Tarjeta;
import negocio.Tecnico;


public class AltaTecnicoFrame extends javax.swing.JFrame {


	private JMenuBar menuBar;
	private JMenu mnAdmV;
	private JMenuItem mnAltaVeh;
	private JMenuItem mnBajaVeh;
	private JMenuItem mnModVeh;
	private JMenu mnAdmT;
	private JMenuItem mnAltaTec;
	private JMenuItem mnBajaTec;
	private JMenuItem mnModTec;
	private JMenu mnMov;
	private JMenuItem mnRegisMov;	
	private JMenu mnMant;
	private JLabel lblLegajo;
	private JLabel lblDNI;
	private JLabel lblApellido;
	private JLabel lblNombre;
	private JMenuItem mnGenMant;
	private JMenuItem mnAutMant;
	private JMenu mnReports;
	private JTextField txtNroTarj;
	private JLabel lblNroTarj;
	private JTextField txtTel;
	private JLabel lblTel;
	private JMenuItem mnGenRep;
	private JComboBox cmbNroSede;
	private JLabel lblNroSede;
	private JButton btnCancelar;
	private JButton btnAceptar;
	private JTextField txtDomicilio;
	private JLabel jDomicilio;
	private JTextField txtLegajo;
	private JTextField txtDNI;
	private JTextField txtApellido;
	private JTextField txtNombre;
	private JSeparator sep;	
	
	private Sistema sistema;

	
	public AltaTecnicoFrame() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		sistema=Sistema.getInstance();
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setBackground(new java.awt.Color(255,255,255));
			this.setIconImage(new ImageIcon(getClass().getClassLoader().getResource("mgasbar.png")).getImage());
			getContentPane().setLayout(null);
			this.setTitle("MetroGas");
			{/*
				BufferedImage myPicture = ImageIO.read(new File("mgas.png"));
				lblLogo = new JLabel(new ImageIcon(myPicture));
				getContentPane().add(lblLogo);
				lblLogo.setBackground(new java.awt.Color(0,64,0));
				lblLogo.setBounds(429, 121, 150, 65);*/
			}
			{
				lblNombre = new JLabel();
				getContentPane().add(lblNombre);
				lblNombre.setText("Nombre:");
				lblNombre.setBounds(69, 55, 68, 15);
			}
			{
				lblApellido = new JLabel();
				getContentPane().add(lblApellido);
				lblApellido.setText("Apellido:");
				lblApellido.setBounds(69, 82, 82, 15);
			}
			{
				lblDNI = new JLabel();
				getContentPane().add(lblDNI);
				lblDNI.setText("DNI:");
				lblDNI.setBounds(69, 109, 44, 15);
			}
			{
				lblLegajo = new JLabel();
				getContentPane().add(lblLegajo);
				lblLegajo.setText("Legajo:");
				lblLegajo.setBounds(69, 162, 45, 15);
			}
			
			{
				txtNombre = new JTextField();
				getContentPane().add(txtNombre);
				txtNombre.setText("");
				txtNombre.setBounds(157, 50, 127, 22);
			}
			{
				txtApellido = new JTextField();
				getContentPane().add(txtApellido);
				txtApellido.setText("");
				txtApellido.setBounds(157, 77, 127, 22);
			}
			{
				txtDNI = new JTextField();
				getContentPane().add(txtDNI);
				txtDNI.setText("");
				txtDNI.setBounds(157, 104, 127, 22);
			}
			{
				txtLegajo = new JTextField();
				getContentPane().add(txtLegajo);
				txtLegajo.setText("");
				txtLegajo.setBounds(157, 158, 127, 22);
			}
			{
				lblNroSede = new JLabel();
				getContentPane().add(lblNroSede);
				lblNroSede.setText("Sede:");
				lblNroSede.setBounds(69, 217, 68, 15);
			}
			{
//				ComboBoxModel cmbNroSedeModel = 
//						new DefaultComboBoxModel(
//								new String[] { "Item One", "Item Two" });
				cmbNroSede = new JComboBox(sistema.getSedes());
				getContentPane().add(cmbNroSede);
//				cmbNroSede.setModel(cmbNroSedeModel);
				cmbNroSede.setBounds(157, 213, 127, 22);
			}
			{
				lblTel = new JLabel();
				getContentPane().add(lblTel);
				lblTel.setText("Telefono:");
				lblTel.setBounds(69, 189, 68, 22);
			}
			{
				txtTel = new JTextField();
				getContentPane().add(txtTel);
				txtTel.setBounds(157, 183, 131, 24);
			}
			{
				btnAceptar = new JButton();
				getContentPane().add(btnAceptar);
				btnAceptar.setText("Aceptar");
				btnAceptar.setBounds(418, 276, 86, 22);
				btnAceptar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						Tecnico t=sistema.buscarTecnico(Integer.valueOf(txtDNI.getText()));
						if(t==null)
						{
							t=new Tecnico();
							t.setApellido(txtApellido.getText());
							t.setDNI(Integer.parseInt(txtDNI.getText()));
							t.setDomicilio(txtDomicilio.getText());
							t.setLegajo(Integer.parseInt(txtLegajo.getText()));
							t.setNombre(txtNombre.getText());
							Tarjeta tar=new Tarjeta();
							tar.setNroTarjeta(Integer.parseInt(txtNroTarj.getText()));
							tar.setEstado(true);
							tar.setAsociada(true);
							tar.setTipo("normal");
							t.setTarjeta(tar);							
							t.setSede((Sede) cmbNroSede.getSelectedItem());							
							t.setTelefonoL(Integer.parseInt(txtTel.getText()));							
							sistema.agregarTecnico(t);
							JOptionPane.showMessageDialog(null, "Tecnico agregado", "Alta existosa", JOptionPane.INFORMATION_MESSAGE);
						}else
						{
							JOptionPane.showMessageDialog(null, "Tecnico existente", "Error", JOptionPane.WARNING_MESSAGE);
						}
						
						
					}
				});
			}
			{
				btnCancelar = new JButton();
				getContentPane().add(btnCancelar);
				btnCancelar.setText("Cancelar");
				btnCancelar.setBounds(512, 276, 86, 22);
				btnCancelar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						MenuFrame asd=new MenuFrame();
						dispose();
						
					}
				});
			}			
			{
				lblNroTarj = new JLabel();
				getContentPane().add(lblNroTarj);
				lblNroTarj.setBounds(69, 134, 63, 15);
				lblNroTarj.setText("Nro Tarjeta:");
			}
			{
				txtNroTarj = new JTextField();
				getContentPane().add(txtNroTarj);
				txtNroTarj.setBounds(157, 131, 127, 22);
				txtNroTarj.setText("");
			}
			{
				jDomicilio = new JLabel();
				getContentPane().add(jDomicilio);
				jDomicilio.setText("Domicilio");
				jDomicilio.setBounds(412, 80, 74, 16);
			}
			{
				txtDomicilio = new JTextField();
				getContentPane().add(txtDomicilio);
				txtDomicilio.setBounds(486, 77, 127, 22);
			}
			{
				menuBar = new JMenuBar();
				setJMenuBar(menuBar);
				{
					mnAdmV = new JMenu();
					menuBar.add(mnAdmV);
					mnAdmV.setText("Administrar Vehiculo");
					{
						mnAltaVeh = new JMenuItem();
						mnAdmV.add(mnAltaVeh);
						mnAltaVeh.setText("Alta");
						mnAltaVeh.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									AltaVehiculoFrame a = new AltaVehiculoFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
								
								
							}
						});
					}
					{
						sep = new JSeparator();
						mnAdmV.add(sep);
					}
					{
						mnBajaVeh = new JMenuItem();
						mnAdmV.add(mnBajaVeh);
						mnBajaVeh.setText("Baja");
						mnBajaVeh.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									BajaVehiculoFrame a = new BajaVehiculoFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
					{
						sep = new JSeparator();
						mnAdmV.add(sep);
					}
					{
						mnModVeh = new JMenuItem();
						mnAdmV.add(mnModVeh);
						mnModVeh.setText("Modificar");
						mnModVeh.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									ModVehiculoFrame a = new ModVehiculoFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}					
				}
				{
					mnAdmT = new JMenu();
					menuBar.add(mnAdmT);
					mnAdmT.setText("Administrar Tecnico");
					{
						mnAltaTec = new JMenuItem();
						mnAdmT.add(mnAltaTec);
						mnAltaTec.setText("Alta");
						mnAltaTec.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									AltaTecnicoFrame a = new AltaTecnicoFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
					{
						sep = new JSeparator();
						mnAdmT.add(sep);
					}
					{
						mnBajaTec = new JMenuItem();
						mnAdmT.add(mnBajaTec);
						mnBajaTec.setText("Baja");
						mnBajaTec.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								

								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									BajaTecnicoFrame a = new BajaTecnicoFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
					{
						sep = new JSeparator();
						mnAdmT.add(sep);
					}
					{
						mnModTec = new JMenuItem();
						mnAdmT.add(mnModTec);
						mnModTec.setText("Modificar");
						mnModTec.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									ModTecnicoFrame a = new ModTecnicoFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
				}
				{
					mnMov = new JMenu();
					menuBar.add(mnMov);
					mnMov.setText("Movimientos");
					{
						mnRegisMov = new JMenuItem();
						mnMov.add(mnRegisMov);
						mnRegisMov.setText("Registrar");
						mnRegisMov.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									RegisMovFrame a = new RegisMovFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
								
							}
						});
					}
				}
				{
					mnMant = new JMenu();
					menuBar.add(mnMant);
					mnMant.setText("Mantenimiento");
					{
						mnGenMant = new JMenuItem();
						mnMant.add(mnGenMant);
						mnGenMant.setText("Generar");
						mnGenMant.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									GenMantFrame a = new GenMantFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
					{
						sep = new JSeparator();
						mnMant.add(sep);
					}
					{
						mnAutMant = new JMenuItem();
						mnMant.add(mnAutMant);
						mnAutMant.setText("Autorizar");
						mnAutMant.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO")
										|| sistema.getLogins().getTipoUsuario().equals("AUDITORIA"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									AutMantFrame a = new AutMantFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
				}
				{
					mnReports = new JMenu();
					menuBar.add(mnReports);
					mnReports.setText("Reportes");
					{
						mnGenRep = new JMenuItem();
						mnReports.add(mnGenRep);
						mnGenRep.setText("Generar");
						mnGenRep.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent evt) {
								
								if(sistema.getLogins().getTipoUsuario().equals("GUARDIA") || sistema.getLogins().getTipoUsuario().equals("TECNICO"))
								{
									Container d=getContentPane();
									JOptionPane.showMessageDialog(d,"No tiene acceso","Error",JOptionPane.ERROR_MESSAGE);
								}else
								{
									GenRepFrame a = new GenRepFrame();
									a.setLocationRelativeTo(null);
									dispose();
								}
							}
						});
					}
				}
			}
			pack();
			this.setSize(700, 400);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
		setLocationRelativeTo(null);
		setVisible(true);
	}
}
